#! /usr/bin/env python
#coding=utf-8
#使用socket模块编写的服务器（通过UDP传输数据）
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(("",10000))  #bind函数只有一个参数
while True:
    data,client=s.recvfrom(1024)
    print "receive a connection from %s"  %str(client)   #str（）函数可以将元组转换成字符串形式
    #回显
    s.sendto("echo:"+data,client)
    



#实例方法
#    
#
#说明
#sock.bind( (adrs, port) )
#将 socket 绑定到一个地址和端口上
#sock.accept()
#
#返回一个客户机 socket（带有客户机端的地址信息）
#
#sock.listen(backlog)
#
#将 socket 设置成监听模式，能够监听 backlog 外来的连接请求
#
#sock.connect( (adrs, port) )
#    
#
#将 socket 连接到定义的主机和端口上
#
#sock.recv( buflen[, flags] )
#    
#
#从 socket 中接收数据，最多 buflen 个字符
#
#sock.recvfrom( buflen[, flags] )
#    
#
#从 socket 中接收数据，最多 buflen 个字符，同时返回数据来源的远程主机和端口号
#
#sock.send( data[, flags] )
#    
#
#通过 socket 发送数据
#
#sock.sendto( data[, flags], addr )
#    
#
#通过 socket 发送数据
#
#sock.close()
#    
#
#关闭 socket
#
#sock.getsockopt( lvl, optname )
#    
#
#获得指定 socket 选项的值
#
#sock.setsockopt( lvl, optname, val )
#    
#
#设置指定 socket 选项的值